// 公共模块
module.exports = {
	// 封装调用云函数
	callCloudFunction: (name, data) => {
		// 1. 通过new Promise但是不调用resolve, reject此时就会一直处于pending状态。
		// 2. 这样返回的promise就不会执行后续操作,外部也不需要错误处理。
		// 3. 只要正确的情况调用resolve,外部也只要处理正确回调即可。
		return new Promise((resolve, reject) => {
			uniCloud.callFunction({
				name: name,
				data: data,
			}).then(res => {
				// res.result对应拿到的是network中返回的第一层data对象
				// console.log('云函数:' + name + '参数:' + JSON.stringify(data) + '调用成功返回:' + JSON.stringify(res.result))
				let resData = res.result;
				if (resData.code === 1) {
					resolve(resData.data);
				} else {
					uni.hideLoading()
					uni.showToast({
						icon: "none",
						title: resData.msg,
						duration: 3000
					});
					reject(resData)
				}
			}).catch(error => {
				uni.hideLoading()
				uni.showToast({
					icon: "none",
					title: '云函数调用失败:' + error,
					duration: 3000
				});
				reject(error)
				
			});
		});
		
	}
}
